#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int judgenum(long long a);

int main(void)
{
	int d[3]={5,7,11};
	int i,d1,d2,d3,d4,d5;
	long long num,a,b;
	scanf("%lld %lld",&a,&b);
	for(i=0;i<3;i++)
	if(d[i]<=b&&d[i]>=a)printf("%d\n",d[i]);
	if(b>100){
		for(d1=1;d1<=9;d1+=2){
		    if(d1==5)continue; // 只有奇数才会是素数
            for(d2=0;d2<=9;d2++){
                num=101*d1+10*d2;
                if(num<a)continue;
			    if(num>b)goto here;
			    if(judgenum(num))printf("%lld\n",num);
            }
        }
        for(d1=1;d1<=9;d1+=2){
		    if(d1==5)continue; // 只有奇数才会是素数
            for(d2=0;d2<=9;d2++){
            	for(d3=0;d3<=9;d3++){
                    num=10001*d1+1010*d2+100*d3;
                    if(num<a)continue;
			        if(num>b)goto here;
			        if(judgenum(num))printf("%lld\n",num);
			    }
            }
        }
		for(d1=1;d1<=9;d1+=2){
		    if(d1==5)continue; // 只有奇数才会是素数
            for(d2=0;d2<=9;d2++){
            	for(d3=0;d3<=9;d3++){
            		for(d4=0;d4<=9;d4++){
                        num=1000001*d1+100010*d2+10100*d3+1000*d4;
                        if(num<a)continue;
			            if(num>b)goto here;
			            if(judgenum(num))printf("%lld\n",num);
			        }
			    }
            }
        }
        for(d1=1;d1<=9;d1+=2){
		    if(d1==5)continue; // 只有奇数才会是素数
            for(d2=0;d2<=9;d2++){
            	for(d3=0;d3<=9;d3++){
            		for(d4=0;d4<=9;d4++){
            			for(d5=0;d5<=9;d5++){
                        num=100000001*d1+10000010*d2+1000100*d3+101000*d4+10000*d5;
                        if(num<a)continue;
			            if(num>b)goto here;
			            if(judgenum(num))printf("%lld\n",num);
			            }
			        }
			    }
            }
        }
	}
	here:return 0;
 } 
 int judgenum(long long a){
 	long cnt;
 	int j;
 	for(cnt=3,j=1;cnt<=sqrt(a);cnt+=2){
    		if(a%cnt==0){
    			j=0;
    			break;
			}
	}//检验质数 
	return j;
 }


 //感谢陈鹏翰同学友情赞助的代码，以下为题目
 /*
Lab 2-3 回文素数prime palindrome (optional)
题目说明: The number 151 is a prime palindrome because it is both a prime number and a palindrome (it is the same number when read forward as backward). Write a program that finds all prime palindromes in the range of two supplied numbers a and b (5 <= a < b <= 1000,000,000); both a and b are considered to be within the range .
格式要求：
Input
Line 1: Two integers, a and b
Output
The list of palindromic primes in numerical order, one per line.

Sample Input
5 500
Sample Output
5
7
11
101
131
151
181
191
313
353
373
383
Time limit : 5 s
Memory limit : 32 mb

提示
1. 本题目要求单组输入
2. 一个数字的奇数位上的数字和等于偶数位上的数字和 那么它必然能被 11 整除(证明略)
3. 枚举方法
(1). 枚举 a 到 b 每个数 判断其是否质数 再判断其是否回文
(2). 枚举 a 到 b 每个数 判断其是否回文 再判断其是否质数
(3). 生成 a 到 b 之间的所有回文数 再判断其是否质数
4. 素数判定方法(除基本做法外)
(1). 奇数试除法
(2). 质数试除法
(3). Miller-Rabin 质数判定法
5. 回文生成方法
(1).分情况讨论多重循环
(2).分情况讨论相邻回文数间的增量
(3).枚举一半的数字镜像生成另一半
*/